In a client-services architecture, a client system, such as a computer, may call an application, such as a program, a service, or a web service, at a server to interact with the application through the Internet or an intranet. A service, such as a web service, is an application (or program) that makes itself available over the Internet or an intranet, uses standardized messaging, such as XML (extensible Markup Language) and Simple Object Access Protocol (SOAP), and uses some type of location mechanism, such as UDDI (Universal Description, Discovery, and Integration), to locate the service and its public Application Program Interface (API).
To call a service through the Internet or intranet, the client system makes a call (e.g., using messages) through an API, which defines the way the client communicates with the service. The service instantiates objects, such as business objects, in response to the API call. The term “object” refers to a data structure including at least one, of data and related methods, while the phrase “business object” refers to an object used in connection with a business process or task.
An example of a service is a “flight reservation” service, which can be called through a network (e.g., the Internet and/or the intranet) by a client system. The flight reservation service may allow a user at a client system to perform a variety of flight reservation tasks, such as display flight data, calculate fare including any tax, save (i.e., make) a flight reservation, and edit (i.e., modify) flight reservations.
FIG. 5 depicts examples of the business objects 402-408 that may be associated with the flight reservation service. The business objects may, for example, correspond to a flight reservation service (e.g., business object 402), a business object for displaying a flight reservation (e.g., business object 404), a business object for calculating a fare including any tax (e.g., business object 406), a business object for modifying a flight reservation (e.g., business object 408). In the example of FIG. 5, business objects 404-408 are so-called “dependent” business objects since they depend from business object 402. The dependent business objects 404-408 include associations 416a-c to business object 402. The associations 416a-c are links (or pointers) associating business objects to other business objects and provide structure to the business objects. Although FIG. 5 depicts four, simplified business objects, actual implementations of business objects may include hundreds if not thousands of business objects with complex associations, methods, and/or data. Moreover, each of these business objects may have entities with attributes defined by a developer.